//
// Created by tang on 23-4-24.
//

#ifndef PIINFO_FIELD_HPP
#define PIINFO_FIELD_HPP

#include <types/type_info.hpp>

class Class;

class Field : public TypeInfo
{
public:
    Field(const Cursor& cursor, const Namespace& current_ns, Class *parent = nullptr);

    bool should_compile() const;

    std::string key() const;

    std::string name() const;

private:

    bool is_const_;
    Class *parent_;
    std::string name_;
    std::string key_;

    std::string display_name_;
    std::string type_;
    std::string default_;

    bool accessible() const;
};

#endif  // PIINFO_FIELD_HPP
